package com.css.crm.dao;

import java.util.List;
import com.css.crm.vo.CustomerAddressVo;

/**
 * Interface for DAO on table VP_CUST_ADDR
 * 
 * @author AIS
 */
public interface CustomerAddressDao extends BaseDao {

	/**
	 * Get specific customer address record by customer address id
	 * 
	 * @param custAddrId
	 *            Customer address id to specific record to be retrieved
	 * @return Specific customer address record
	 */
	CustomerAddressVo getCustomerAddressByPK(String custAddrId);

	/**
	 * Get all customer address record by customer id
	 * 
	 * @param custId
	 *            Customer id to specific record to be retrieved
	 * @return List of customer address record(s)
	 */
	List<CustomerAddressVo> getCustomerAddressByCustId(String custId);

	/**
	 * Create customer address record
	 * 
	 * @param customerAddress
	 *            CustomerAddressVo object
	 * @return Row count affected
	 */
	int insertCustomerAddress(CustomerAddressVo customerAddress);

	/**
	 * Update customer address record
	 * 
	 * @param customerAddress
	 *            Updated CustomerAddressVo object
	 * @return Row count affected
	 */
	int updateCustomerAddressByPK(CustomerAddressVo customerAddress);

	/**
	 * Delete specific customer address record by customer address id
	 * 
	 * @param custAddrId
	 *            Customer address id to specific record to be deleted
	 * @return Row count affected
	 */
	int deleteCustomerAddressByPK(Long custAddrId);

	/**
	 * Delete customer address record(s) by customer id
	 * 
	 * @param custId
	 *            Customer id to specific record(s) to be deleted
	 * @return Row count affected
	 */
	int deleteCustomerAddressByCustId(String custId);
}
